home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / tools / rb / jlcd100.lzh / JLCD / SAMP / JLCDCDC.s next >
Text File  |  1997-12-28  |  13KB  |  736 lines

  1.     .include    tnb.mac
  2.     .include    iocscall.mac
  3.     .include    doscall.mac
  4.     .include    cdc.mac
  5.     .include    JLCDCALL.mac
  6.  
  7. HEAD1 = '*JLC'
  8. HEAD2 = 'DC00'
  9.  
  10.  
  11. StartStatio:*******************常駐部
  12. SS:
  13.  
  14. head:
  15.     .dc.l    HEAD1
  16.     .dc.l    HEAD2
  17.     .even
  18.  
  19.  
  20. BB:
  21.     .dc.w    0        *再突入防止
  22.  
  23. B_KEYSNS:*=========================================
  24.     *    ($101)[$0404]
  25.     *    IOCS $01 B_KEYSNS
  26.     *
  27. B_KEYSNS_ = $0404
  28.     bsr    B_KEYSNS_JMP
  29.     tst.w    BB
  30.     beq    @f
  31.     rts
  32. @@:    tst.l    d0
  33.     beq    @f
  34.     rts
  35. @@:
  36.     move.w    #-1,BB
  37.     movem.l    d0-d7/a0-a6,-(sp)
  38.     CDC    _CDC_STAT
  39.     movea.l    d0,a6            * ワーク
  40.     *        offset
  41.     *        ( 0)    .dc.w    0;NoCD 1;SetCD
  42.     *        ( 2)    .dc.l    状態  0x11;演奏中,0x12;一時停止,0x13;停止
  43.     *        ( 6)    .dc.l    曲番号
  44.     *        (10)    .dc.l    演奏中の曲の経過時間 (MSF型)
  45.     *        (14)    .dc.l    CD絶対総 経過時間 (MSF型)
  46.     *        (18)    .dc.l    現在演奏曲のながさ (MSF型)
  47.     *        (22)    .dc.l    CD名アドレス
  48.     *        (26)    .dc.l    曲名アドレス
  49.     *        (30)    .dc.l    LED文字アドレス    -----以下LED部に表示される物
  50.     *        (34)    .dc.l    LED数値 曲番号
  51.     *        (38)    .dc.l    LED数値 1以上;プログラムナンバー
  52.     *                    0;表示無し -1;MAX= -2;INP= -3;Vol
  53.     *        (42)    .dc.l    LED数値 タイム (MSF型)
  54.     *        (46)    .dc.l    LEDの状態
  55.     *                    ┌bit 0 ■:停止
  56.     *                    │bit 1 >:再生
  57.     *                    │bit 2 ||:一時停止
  58.     *                   イズレカ│bit 3 >>:早送り
  59.     *                    └bit 4 <<:巻き戻し
  60.     *                    ┌bit 5 ⊂:オート
  61.     *                    └bit 6 ◯:リピート
  62.     *                      bit 7 R:ランダム
  63.     *                      bit 8 P:メモリー
  64.     *                     (bit 9 B:BGM)
  65.     *        (50)    .dc.b    入力されている数値(上)
  66.     *        (51)    .dc.b    入力されている数値(下)
  67.     *        (52)    .dc.w    LED数値 タイム のモード
  68.     *                    0;ノーマル
  69.     *                    1;リバース
  70.     *                    2;トータル
  71.     *                    3;トータルリバース
  72.     *        (54)    .dc.w    Vol数値
  73.     *        (56)    .dc.w    MasterVol数値(0ならボリューム機能無し)
  74.     lea    work_bak,a2
  75.     tst.w    vw_ff
  76.     beq    2f
  77.     *---- LCD は元気?!
  78.     moveq    #0,d2            * 破壊チェック
  79.     JLCD    _JLCD_INST
  80.     tst.l    d0
  81.     beq    1f
  82.     *--破壊されている
  83. 2:
  84.     move.w    #1,vw_ff
  85.     lea    work_bak_,a2
  86.     moveq    #1,d2            * CLR !
  87.     JLCD    _JLCD_INST
  88. 1:
  89.     moveq    #0,d3            * 定数
  90.     *===== CD 状態
  91.     move.w    (a6),d0
  92.     cmp.w    (a2),d0
  93.     beq    8f
  94.     *--- 書き替え
  95.     tst.w    d0
  96.     bne    @f
  97.     *-- CD なし
  98.     moveq    #$00,d2
  99.     lea    vw_nc1,a1
  100.     JLCD    _JLCD_PRINT
  101.     moveq    #$40,d2
  102.     lea    vw_nc2,a1
  103.     JLCD    _JLCD_PRINT
  104.     bra    9f
  105. @@:
  106.     lea    work_bak_,a2
  107.     moveq    #$00,d2
  108.     lea    vw_ncd,a1
  109.     JLCD    _JLCD_PRINT
  110.     moveq    #$40,d2
  111.     lea    vw_ncd,a1
  112.     JLCD    _JLCD_PRINT
  113. 8:    *===== 曲番号
  114.     move.l    34(a6),d0
  115.     cmp.l    34(a2),d0
  116.     beq    8f
  117.     *--- 書き替え
  118.     lea    vwork,a1
  119.     bsr    itoa3
  120.     clr.b    3(a1)
  121.     moveq    #$4C,d2
  122.     JLCD    _JLCD_PRINT
  123. 8:    *===== '=' 等表示
  124.     move.l    38(a6),d0
  125.     cmp.l    38(a2),d0
  126.     beq    8f
  127.     *--- 書き替え
  128.     tst.l    d0
  129.     bmi    2f
  130.     bne    1f
  131.     *---- 消す
  132.     moveq    #$0B,d2
  133.     lea    vw_nul,a1
  134.     JLCD    _JLCD_PRINT
  135.     moveq    #$48,d2
  136.     lea    vw_nul,a1
  137.     JLCD    _JLCD_PRINT
  138.     bra    8f
  139. 1:    *--- P ナンバー
  140.     lea    vwork+2,a1
  141.     move.w    #'P=',-2(a1)
  142.     bsr    itoa2
  143.     lea    vwork,a1
  144.     clr.b    4(a1)
  145.     moveq    #$0B,d2
  146.     JLCD    _JLCD_PRINT
  147.     lea    vw_nul,a1
  148.     moveq    #$48,d2
  149.     JLCD    _JLCD_PRINT
  150.     bra    8f
  151. 2:    *--- 数字意味表示
  152.     neg.l    d0
  153.     mulu    #5,d0
  154.     lea    vw_nul,a1
  155.     adda.l    d0,a1
  156.     moveq    #$48,d2
  157.     JLCD    _JLCD_PRINT
  158. 8:    *===== 時間
  159.     move.l    42(a6),d0
  160.     andi.l    #$00FFFF00,d0
  161.     move.l    42(a2),d1
  162.     andi.l    #$00FFFF00,d1
  163.     cmp.l    d1,d0
  164.     beq    8f
  165.     *--- 書き替え
  166.     lea    vwork,a1
  167.     move.b    #':',3(a1)
  168.     clr.b    6(a1)
  169.     swap    d0
  170.     andi.l    #$00FF,d0
  171.     bsr    itoa3
  172.     move.b    42+2(a6),d0
  173.     lea    vwork+4,a1
  174.     bsr    itoa2
  175.     lea    vwork,a1
  176.     moveq    #$03,d2
  177.     JLCD    _JLCD_PRINT
  178. 8:    *====== LED の状態
  179.     move.l    46(a6),d0
  180.     cmp.l    46(a2),d0
  181.     beq    8f
  182.     *--- 書き替え
  183.     lea    vw_led0,a4    * 左のアイコン
  184.     lea    vw_led0,a5    * 右のアイコン
  185.     move.l    d0,d7
  186.     beq    7f
  187.     btst.l    #0,d7
  188.     beq    @f
  189.     *--- bit 0
  190.     lea    vw_led1,a4    * 左のアイコン    *停止
  191.     lea    vw_max,a1
  192.     moveq    #$48,d2
  193.     JLCD    _JLCD_PRINT
  194. @@:    *--- bit 1
  195.     btst.l    #1,d7
  196.     beq    @f
  197.     lea    vw_led1+8*1,a4    * 左のアイコン    *再生
  198.     lea    vw_nul,a1
  199.     moveq    #$48,d2
  200.     JLCD    _JLCD_PRINT
  201. @@:    *--- bit 2
  202.     btst.l    #2,d7
  203.     beq    @f
  204.     lea    vw_led1+8*2,a4    * 左のアイコン    *一時停止
  205. @@:    *--- bit 3
  206.     btst.l    #3,d7
  207.     beq    @f
  208.     lea    vw_led1+8*3,a4    * 左のアイコン    *はや送り
  209.     bra    1f
  210. @@:    *--- bit 4
  211.     btst.l    #4,d7
  212.     beq    @f
  213.     lea    vw_led1+8*4,a4    * 左のアイコン    *まき戻し
  214. 1:
  215. @@:    *--- bit 5
  216.     btst.l    #5,d7
  217.     beq    @f
  218.     lea    vw_led2,a5    * 右のアイコン    *オート
  219. @@:    *--- bit 6
  220.     btst.l    #6,d7
  221.     beq    @f
  222.     lea    vw_led2+8,a5    * 右のアイコン    *
  223. @@:    *---
  224. 7:
  225.     moveq    #4,d2
  226.     movea.l    a4,a1        * 左のアイコン
  227.     JLCD    _JLCD_FONT
  228.     moveq    #5,d2
  229.     movea.l    a5,a1        * 右のアイコン
  230.     JLCD    _JLCD_FONT
  231.     lea    vwork,a1
  232.     move.w    #$0400,(a1)
  233.     moveq    #$00,d2
  234.     JLCD    _JLCD_PRINT
  235.     move.l    #$05200000,(a1)
  236.     moveq    #$40,d2
  237.     JLCD    _JLCD_PRINT
  238.     *--- bit 7
  239.     lea    vwork,a1
  240.     btst.l    #7,d7
  241.     beq    @f
  242.     move.w    #'R'*$100,(a1)
  243.     bra    1f
  244. @@:    move.w    #' '*$100,(a1)
  245. 1:
  246.     moveq    #$4F,d2
  247.     JLCD    _JLCD_PRINT
  248.     *--- bit 8
  249.     lea    vwork,a1
  250.     btst.l    #8,d7
  251.     beq    @f
  252.     move.w    #'P'*$100,(a1)
  253.     bra    1f
  254. @@:    move.w    #' '*$100,(a1)
  255. 1:
  256.     moveq    #$0F,d2
  257.     JLCD    _JLCD_PRINT
  258. 8:    *---- TIME MODE
  259.     move.w    52(a6),d0
  260.     cmp.w    52(a2),d0
  261.     beq    8f
  262.     *-- 書き替え
  263.     add.w    d0,d0
  264.     add.w    d0,d0
  265.     lea    vw_tm,a1
  266.     adda.w    d0,a1
  267.     moveq    #$01,d2
  268.     JLCD    _JLCD_PRINT
  269. 8:
  270. 9:    *---- 今の状態を記憶して終わり
  271.     lea    work_bak,a2
  272.     move.l    (a6),(a2)
  273.     moveq    #(56-32)/4-1,d0
  274.     adda.l    #32,a6
  275.     adda.l    #32,a2
  276. @@:    move.l    (a6)+,(a2)+
  277.     dbra    d0,@b
  278.     movem.l    (sp)+,d0-d7/a0-a6
  279.     clr.w    BB
  280.     rts
  281.  
  282.  
  283. B_KEYSNS_JMP:
  284.     move.l    B_KEYSNS_JPT(pc),-(sp)
  285.     rts
  286. B_KEYSNS_JPT:
  287.     .dc.l    0
  288.  
  289.     *******-------------------*******
  290. itoa3:
  291.     move.l    d0,-(sp)
  292.     *--100の位
  293.     divu    #100,d0
  294.     tst.w    d0
  295.     beq    @f
  296.     ori.w    #$0030,d0
  297.     move.b    d0,(a1)
  298.     bra    1f
  299. @@:    move.b    #' ',(a1)
  300. 1:    *--10,1の位
  301.     swap    d0
  302.     andi.l    #$000FFFF,d0
  303.     divu    #10,d0
  304.     ori.l    #$00300030,d0
  305.     move.b    d0,1(a1)
  306.     swap    d0
  307.     move.b    d0,2(a1)
  308.     move.l    (sp)+,d0
  309.     rts
  310.  
  311. itoa2:
  312.     move.l    d0,-(sp)
  313.     *--10,1の位
  314.     divu    #10,d0
  315.     ori.l    #$00300030,d0
  316.     move.b    d0,0(a1)
  317.     swap    d0
  318.     move.b    d0,1(a1)
  319.     move.l    (sp)+,d0
  320.     rts
  321.         *0123456789ABCDEF
  322. vw_nc1:    .dc.b    ' [CDC]   (C)TNB ',0
  323. vw_nc2:    .dc.b    '    - NOCD -    ',0
  324. vw_ncd:    .dc.b    '                ',0
  325.     .even
  326.  
  327. vw_nul:    .dc.b    '    ',0
  328. vw_max:    .dc.b    'MAX=',0
  329. vw_inp:    .dc.b    'INP=',0
  330. vw_vol:    .dc.b    'VOL=',0
  331.  
  332. vwork:
  333.     .ds.b    256
  334.     .even
  335.  
  336. work_bak:
  337.     .ds.b    56
  338.     .even
  339. work_bak_:
  340.     .dc.w    8
  341.     .dcb.b    56,-1
  342.     .even
  343.  
  344. vw_ff:
  345.     .dc.w    0
  346.  
  347. vw_tm:
  348.     .dc.b    '  ',0,0
  349.     .dc.b    'Rv',0,0
  350.     .dc.b    'To',0,0
  351.     .dc.b    'TR',0,0
  352.  
  353. vw_led0:
  354.     .dc.b    %000_00000    *
  355.     .dc.b    %000_00000
  356.     .dc.b    %000_00000
  357.     .dc.b    %000_00000
  358.     .dc.b    %000_00000
  359.     .dc.b    %000_00000
  360.     .dc.b    %000_00000
  361.     .dc.b    %000_00000
  362. vw_led1:
  363.     .dc.b    %000_00000    *
  364.     .dc.b    %000_11111
  365.     .dc.b    %000_11111
  366.     .dc.b    %000_11111
  367.     .dc.b    %000_11111
  368.     .dc.b    %000_11111
  369.     .dc.b    %000_00000
  370.     .dc.b    %000_00000
  371.     .dc.b    %000_00000    *
  372.     .dc.b    %000_11000
  373.     .dc.b    %000_11110
  374.     .dc.b    %000_11111
  375.     .dc.b    %000_11110
  376.     .dc.b    %000_11000
  377.     .dc.b    %000_00000
  378.     .dc.b    %000_00000
  379.     .dc.b    %000_00000    *
  380.     .dc.b    %000_11011
  381.     .dc.b    %000_11011
  382.     .dc.b    %000_11011
  383.     .dc.b    %000_11011
  384.     .dc.b    %000_11011
  385.     .dc.b    %000_00000
  386.     .dc.b    %000_00000
  387.     .dc.b    %000_00000    *
  388.     .dc.b    %000_10100
  389.     .dc.b    %000_01010
  390.     .dc.b    %000_00101
  391.     .dc.b    %000_01010
  392.     .dc.b    %000_10100
  393.     .dc.b    %000_00000
  394.     .dc.b    %000_00000
  395.     .dc.b    %000_00000    *
  396.     .dc.b    %000_00101
  397.     .dc.b    %000_01010
  398.     .dc.b    %000_10100
  399.     .dc.b    %000_01010
  400.     .dc.b    %000_00101
  401.     .dc.b    %000_00000
  402.     .dc.b    %000_00000
  403. vw_led2
  404.     .dc.b    %000_00000    *
  405.     .dc.b    %000_01110
  406.     .dc.b    %000_10000
  407.     .dc.b    %000_10000
  408.     .dc.b    %000_10010
  409.     .dc.b    %000_01111
  410.     .dc.b    %000_00010
  411.     .dc.b    %000_00000
  412.     .dc.b    %000_00100    *
  413.     .dc.b    %000_01110
  414.     .dc.b    %000_00101
  415.     .dc.b    %000_10001
  416.     .dc.b    %000_10100
  417.     .dc.b    %000_01110
  418.     .dc.b    %000_00100
  419.     .dc.b    %000_00000
  420.  
  421. EndStatio:*******************常駐部
  422.  
  423.  
  424. MarkerChk:*----------------------------------------
  425.     *    a0 アドレス
  426.     *
  427.     *[戻り値] bne ちがう
  428.     *      beq あっている
  429.     cmpa.l    #$F0000000,a0
  430.     bcc    @f
  431.     cmp.l    #HEAD1,(a0)
  432.     bne    @f
  433.     cmp.l    #HEAD2,4(a0)
  434.     bne    @f
  435.     cmpa.l    a0,a0        *z=1
  436. @@:
  437.     rts
  438.  
  439.  
  440. InvChk:*----------------------------------------
  441.     *    a0.l==なら非常駐
  442.     *    a0.l!=なら常駐
  443.     movea.l    (a0),a0            *一つ前のポインタ
  444.     cmpa.l    #$F0000000,a0
  445.     bcc    IC1
  446.     cmp.l    #HEAD1,$0100+(head-SS)(a0)
  447.     bne    @f
  448.     cmp.l    #HEAD2,$0104+(head-SS)(a0)
  449.     bne    @f
  450.     adda.l    #$100,a0    **[SS]のポインタ
  451.     rts
  452. @@:                    **違う
  453.     tst.l    (a0)            *一つ前のポインタ
  454.     bne    InvChk            *0でない(上へ)
  455. IC1:    sub.l    a0,a0    *非常駐
  456.     rts
  457.  
  458.  
  459. AtoI:*----------------------------------------
  460.     *    a2 アドレス
  461.     *[戻り値] d0.l 数字
  462.     moveq    #0,d0
  463.     move.b    (a2),d2
  464.     cmpi.b    #'$',d2
  465.     jbeq    AtoHI
  466. @@:    move.b    (a2)+,d2
  467.     subi.b    #'0',d2
  468.     jbcs    AIr
  469.     cmpi.b    #9,d2
  470.     jbhi    AIr
  471.     andi.l    #$0000FF,d2
  472.     mulu    #10,d0
  473.     add.l    d2,d0
  474.     jbra    @b
  475. AIr:    subq    #1,a2
  476.     rts
  477. AtoHI:
  478.     *(Hex専用)
  479.     move.b    (a2)+,d2    *$ skip
  480. @@:    move.b    (a2)+,d2
  481.     subi.b    #'0',d2
  482.     jbcs    AHIL1
  483.     cmpi.b    #9,d2
  484.     jbhi    AHIL1
  485.     lsl.l    #4,d0
  486.     add.l    d2,d0
  487.     jbra    @b
  488. AHIL1:
  489.     ori.b    #$20,d2
  490.     subi.b    #'a'-'0',d2
  491.     jbcs    AHIL2
  492.     cmpi.b    #5,d2
  493.     jbhi    AHIL2
  494.     lsl.l    #4,d0
  495.     addi.l    #10,d0
  496.     add.l    d2,d0
  497.     jbra    @b
  498. AHIL2:    subq    #1,a2
  499.     rts
  500.  
  501.  
  502. clcf:    .dc.w    0
  503. cmdlinchk:*------------------------------------------------------------------
  504.     *    in a2 = 文字列
  505.     *    out d0.b    0   ; OK
  506.     *            -1  ; LINEERR
  507.     *            -2  ; COMDERR
  508.     *            -100; その他
  509.     *            'h' ; -?
  510.     *            'h' ; -H
  511.     *            'r' ; -R
  512.     *
  513.     clr.w    clcf
  514.     bra    sw
  515. cmdlinchkD:    ** DEVICE エントリ用
  516.     move.w    #-1,clcf
  517. sw:    move.b    (a2)+,d0
  518.     bne    1f
  519.     *======終わり?
  520.     tst.w    clcf
  521.     bne    @f
  522.     *======COMLINE からなので終わり
  523.     moveq    #0,d0
  524.     rts
  525. @@:    *====== DEVICE
  526.     move.b    (a2),d0
  527.     bne    sw
  528.     moveq    #0,d0    * 0が連続なので終わり
  529.     rts
  530. 1:
  531.     cmpi.b    #' ',d0
  532.     beq    sw
  533.     cmpi.b    #$09,d0        *tab
  534.     beq    sw
  535.     cmpi.b    #'-',d0
  536.     beq    swc
  537.     cmpi.b    #'/',d0
  538.     beq    swc
  539. swe:    *======コマンドラインが異常
  540.     moveq    #-1,d0
  541.     rts
  542. swc:
  543.     *======スイッチ判断
  544.     move.b    (a2)+,d0
  545.     beq    swe
  546.     cmpi.b    #'?',d0
  547.     bne    @f
  548.     moveq    #'h',d0
  549.     rts
  550. @@:
  551.     ori.b    #$20,d0    *小文字化!
  552.     cmpi.b    #'r',d0
  553.     beq    clcrts
  554.     cmpi.b    #'h',d0
  555.     beq    clcrts
  556. @@:
  557.     moveq    #-2,d0
  558. clcrts:
  559.     rts
  560.  
  561.  
  562. init:*------------------------------------------------------------------
  563.     move.l    a0,ExA0
  564.     Print    LR1(pc)
  565.  
  566.     ** 常駐チェック **
  567.     suba.l    a1,a1
  568.     SUPER
  569.     movea.l    d0,a1
  570.  
  571.     moveq    #0,d1
  572.     bsr    InvChk
  573.     movea.l    a0,a3            *常駐先頭アドレス
  574.  
  575.     movea.l    B_KEYSNS_,a0
  576.     suba.l    #B_KEYSNS-head,a0
  577.     jbsr    MarkerChk
  578.     jbne    @f
  579.     bset    #0,d1
  580. @@:
  581.                     *d1に常駐状態
  582. .if 0
  583.     ** 常駐していたらそのデータを引用 **
  584.     move.l    a3,d0
  585.     beq    conl
  586.  
  587.     lea    __COM__-SS(a3),a0
  588.     lea    __COM__,a6
  589.     move.l    #(__COM__S-__COM__)/2-1,d0
  590. @@:    move.w    (a0)+,(a6)+
  591.     dbra    d0,@b
  592. .endif
  593.  
  594. conl:
  595.     tst.b    (a2)+            *スキップ
  596.     bsr    cmdlinchk        *a2 に文字列もって bsr
  597.  
  598.     tst.b    d0
  599.     bne    1f
  600.     bra    keep
  601. 1:
  602.     cmpi.b    #-100,d0
  603.     bne    @f
  604.     DOS    _EXIT
  605. @@:
  606.     cmpi.b    #-1,d0
  607.     bne    @f
  608.     pea    LR6(pc)
  609.     bra    PE    *end
  610. @@:
  611.     cmpi.b    #'r',d0
  612.     beq    free
  613.     cmpi.b    #'h',d0
  614.     beq    help
  615.     pea    LR7(pc)            * -2 もここだ!
  616.     bra    PE    *end
  617. help:
  618.     pea    LRH(pc)
  619.     bra    PE    *end
  620.  
  621. keep:    ************************** 常駐させる
  622.     move.l    a3,d0
  623.     beq    keepL1
  624.         *既に常駐、設定変更
  625. .if 0
  626.     lea    __COM__-SS(a3),a0
  627.     lea    __COM__,a6
  628.     move.l    #(__COM__S-__COM__)/2-1,d0
  629. @@:    move.w    (a6)+,(a0)+
  630.     dbra    d0,@b
  631. .endif
  632.     move.w    MC(pc),d0
  633.     bne    @f
  634.     pea    LR5(pc)
  635.     bra    PE    *end
  636. @@:    pea    LR5_(pc)
  637.     bra    PE    *end
  638. keepL1:
  639.     *==============セット
  640.     *---- CDC はある?
  641.     _CDC_CHK_S
  642.     bne    @f
  643.     pea    LRNC(pc)
  644.     bra    PE    *end
  645. @@:    *---- JLCD はある?
  646.     JLCD    _JLCD_VER
  647.     cmpi.w    #$4A4C,d0
  648.     beq    @f
  649.     pea    LRNJ(pc)
  650.     bra    PE    *end
  651. @@:
  652.     *---- JLCD は時計?!
  653.     moveq    #-1,d2            * チェック
  654.     JLCD    _JLCD_INIT
  655.     tst.l    d0
  656.     beq    @f
  657.     pea    LRNE(pc)        * アプリが使っている
  658.     bra    PE    *end
  659. @@:
  660.      bsr    keepdisp
  661.     *---- JLCD を占領?!
  662.     moveq    #1,d2            * 占領
  663.     JLCD    _JLCD_INIT
  664.     *---
  665.     Print    LRKP(pc)
  666.     clr.w    -(sp)
  667.     move.l    #EndStatio-StartStatio,d0
  668.     move.l    d0,-(sp)
  669.     DOS    _KEEPPR
  670.  
  671. keepdisp:***************
  672.     move.l    B_KEYSNS_,B_KEYSNS_JPT
  673.      move.l    #B_KEYSNS,B_KEYSNS_
  674.     rts
  675.  
  676.  
  677. free:    *****************************常駐解除
  678.     move.l    a3,d0
  679.     bne    @f
  680.     pea    LR8(pc)        **非常駐
  681.     bra    PE    *end
  682. @@:
  683.     cmpi.w    #$01,d1
  684.     beq    @f
  685.     pea    LR4(pc)        **ベクタが占領
  686.     bra    PE    *end
  687. @@:
  688.     move.l    (B_KEYSNS_JPT-SS)(a3),B_KEYSNS_
  689.     *---- JLCD を時計に戻す
  690.     moveq    #0,d2            * 占領
  691.     JLCD    _JLCD_INIT
  692. @@:    *--
  693.     sub.l    #$00000F0,a3
  694.     move.l    a3,-(sp)
  695.     DOS    _MFREE
  696.     addq.l    #4,sp
  697.  
  698.     pea    LR3(pc)
  699. PE:    DOS    _PRINT
  700.     addq.l    #4,sp
  701.     DOS    _EXIT
  702.  
  703.  
  704.  
  705.     *------------------------------------------*
  706.  
  707. ExA0:    .dc.l    0
  708.  
  709. MC:    .dc.w    0    *モードをいじった
  710. LR2:    .dc.b    ' 「白窓君」に CDC の LED を表示します。',$0d,$0a,0
  711. LRKP:    .dc.b    ' 常駐しました。',$0d,$0a,0
  712. LR3:    .dc.b    ' 常駐解除しました。',$0d,$0a,0
  713. LR4:    .dc.b    ' ベクタが占領されています。',$0d,$0a,0
  714. LR5:    .dc.b    ' 既に常駐しています。',$0d,$0a,0
  715. LR5_:    .dc.b    ' 設定を変更しました。    ',$0d,$0a,0
  716. LR6:    .dc.b    ' コマンドラインが異常です。',$0d,$0a,0
  717. LR7:    .dc.b    ' スイッチが異常です。',$0d,$0a,0
  718. LR8:    .dc.b    ' 常駐していません。',$0d,$0a,0
  719. LRNC:    .dc.b    ' CDC.x が常駐していないか、trap #5 が使えません。',$0d,$0a,0
  720. LRNJ:    .dc.b    ' 「白窓君」DRIVER がありません。',$0d,$0a,0
  721. LRNE:    .dc.b    ' 「白窓君」は他のアプリが占領しています。',$0d,$0a,0
  722. LRCN:    .dc.b    ' CONFIG.SYSで登録されています。',$0d,$0a
  723.     .dc.b    ' 常駐解除できません。',$0d,$0a,0
  724.     .even
  725. LRH:    .dc.b    $0d,$0a
  726.     .dc.b    '使用法:JLCDCDC.x [switch] ',$0d,$0a
  727.     .dc.b    '    /R ・・・・・・・・ 常駐解除します。',$0d,$0a
  728.     .dc.b    $0d,$0a
  729.     .dc.b    0
  730.     .even
  731. LR1:    .dc.b    'X68k 「白窓君」 CDC LED Version 1.00 Copyright 1997 TNB製作所'
  732. CRLF:    .dc.b    $0d,$0a,0
  733.     .even
  734.  
  735.     .end    init
  736.